const {cache} = require('../config/defaultConfig');

function refreshRes(stats,res){
  const {maxAge,expires,cacheControl,lastModified,etag} = cache
  if(expires){
    res.setHeader('Expires',(new Date(Date.now()+maxAge*1000)).toUTCString())
  }
  if(cacheControl){
    res.setHeader('Cache-Control',`public, max-age=${maxAge}`)
  }
  if(lastModified){
    res.setHeader('Last-Modified',stats.mtime.toUTCString())
  }
  if(etag){
    res.setHeader('ETag',`${stats.size}-${stats.mtime}`)
  }

}
module.exports = function isFresh(stats, req, res){
  refreshRes(stats,res);
  const lastModified = req.headers['if-modified-since'];
  const etag = req.headers['if-none-match'];
  if(!lastModified&&!etag){
    return false
  }
  if(lastModified&&lastModified!== res.getHeader('Last-Modified')){
    return false
  }
  if(etag&&etag!==res.getHeader('ETag')){
    return false
  }
  return true
}